package com.wonders.hisdoctor.station.project.vaccine.domain;

import com.wonders.his.common.utils.validator.group.InsertGroup;
import com.wonders.his.common.utils.validator.group.PrimaryGroup;
import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * <p>疫苗基本信息表</p>
 * <p>db_table: VACCINE_INFO_DICT</p>
 * @author zhanghaonan
 * @date 2021/06/25
 */
@ApiModel("疫苗基本信息表")
@Accessors(chain = true)
@Data
@ToString
@TableName("VACCINE_INFO_DICT")
public class VaccineInfoDict implements Serializable {

    private static final long serialVersionUID = -6791544921225283060L;

    /** `主键` db_field: VACCINE_CODE; desc: 疫苗代码 */
    @ApiModelProperty("疫苗代码")
    @TableId
    @NotBlank(message = "疫苗代码不能为空", groups = PrimaryGroup.class)
    @TableField("VACCINE_CODE")
    private String vaccineCode;

    /** db_field: VACCINE_NAME; desc: 疫苗通用名称 */
    @ApiModelProperty("疫苗通用名称")
    @TableField("VACCINE_NAME")
    @NotBlank(message = "疫苗通用名称不能为空", groups = InsertGroup.class)
    private String vaccineName;

    /** db_field: VACCINE_TRADE_NAME; desc: 疫苗商品名 */
    @ApiModelProperty("疫苗商品名")
    @TableField("VACCINE_TRADE_NAME")
    @NotBlank(message = "疫苗商品名不能为空", groups = InsertGroup.class)
    private String vaccineTradeName;

    /** db_field: VACCINE_SPEC; desc: 规格 */
    @ApiModelProperty("规格")
    @TableField("VACCINE_SPEC")
    @NotBlank(message = "疫苗规格不能为空", groups = InsertGroup.class)
    private String vaccineSpec;

    /** db_field: DRUG_FORM; desc: 剂型 */
    @ApiModelProperty("剂型")
    @TableField("DRUG_FORM")
    private String drugForm;

    /** db_field: FIRM_ID; desc: 产地：对应表drug_supplier_catalog中是生成商数据 */
    @ApiModelProperty("产地：对应表drug_supplier_catalog中是生成商数据")
    @TableField("FIRM_ID")
    @NotBlank(message = "疫苗产地不能为空", groups = InsertGroup.class)
    private String firmId;

    /** db_field: VACCINE_TYPE; desc: 疫苗类别：一类疫苗 、二类疫苗 */
    @ApiModelProperty("疫苗类别：一类疫苗 、二类疫苗")
    @TableField("VACCINE_TYPE")
    private String vaccineType;

    /** db_field: DOSAGE_NUM; desc: 剂次数 */
    @ApiModelProperty("剂次数")
    @TableField("DOSAGE_NUM")
    private Long dosageNum;

    /** db_field: DOSAGE_DAY; desc: 剂次间隔天数 */
    @ApiModelProperty("剂次间隔天数")
    @TableField("DOSAGE_DAY")
    private String dosageDay;

    /** db_field: DOSE_PER_UNIT; desc: 最小单位剂量：每一最小不可分包装单位所含剂量，如每片、每支的剂量 */
    @ApiModelProperty("最小单位剂量：每一最小不可分包装单位所含剂量，如每片、每支的剂量")
    @TableField("DOSE_PER_UNIT")
    private BigDecimal dosePerUnit;

    /** db_field: DOSE_UNITS; desc: 剂量单位：剂量的单位，如mg、ml等 */
    @ApiModelProperty("剂量单位：剂量的单位，如mg、ml等")
    @TableField("DOSE_UNITS")
    private String doseUnits;

    /** db_field: VACCINE_ATTR; desc: 疫苗种类：如灭火疫苗 */
    @ApiModelProperty("疫苗种类：如灭火疫苗")
    @TableField("VACCINE_ATTR")
    private String vaccineAttr;

    /** db_field: APPROVAL_NO; desc: 批准文号 */
    @ApiModelProperty("批准文号")
    @TableField("APPROVAL_NO")
    private String approvalNo;

    /** db_field: INPUT_CODE; desc: 输入码 */
    @ApiModelProperty("输入码")
    @TableField("INPUT_CODE")
    private String inputCode;

    /** db_field: INPUT_TRADE_CODE; desc: 商品名输入码 */
    @ApiModelProperty("商品名输入码")
    @TableField("INPUT_TRADE_CODE")
    private String inputTradeCode;

    /** db_field: SERIAL_NO; desc: 序号 */
    @ApiModelProperty("序号")
    @TableField("SERIAL_NO")
    private Long serialNo;

    /** db_field: CREATE_TIME; desc: 创建时间 */
    @ApiModelProperty("创建时间")
    @TableField("CREATE_TIME")
    private Date createTime;

    /** db_field: CREATE_ID; desc: 创建人ID */
    @ApiModelProperty("创建人ID")
    @TableField("CREATE_ID")
    private String createId;

    /** db_field: CREATE_NAME; desc: 创建人名称 */
    @ApiModelProperty("创建人名称")
    @TableField("CREATE_NAME")
    private String createName;

    /** db_field: UPDATE_DATE; desc: 修改时间 */
    @ApiModelProperty("修改时间")
    @TableField("UPDATE_DATE")
    private Date updateDate;

    /** db_field: UPDATE_ID; desc: 修改人ID */
    @ApiModelProperty("修改人ID")
    @TableField("UPDATE_ID")
    private String updateId;

}